package com.erp.storage.ao.idl;

import java.util.BitSet;
import java.util.Map;
import java.util.Set;
import java.util.Vector;

import com.erp.storage.ao.idl.StoragePo.StockPo;
import com.erp.storage.ao.idl.StoragePo.StockFilterPo;
import com.erp.storage.ao.idl.StoragePo.StockBranch_RelPo;
import com.paipai.lang.uint16_t;
import com.paipai.lang.uint32_t;
import com.paipai.lang.uint64_t;
import com.paipai.lang.uint8_t;
import com.paipai.util.annotation.ApiProtocol;
import com.paipai.util.annotation.Field;
import com.paipai.util.annotation.HeadApiProtocol;
import com.paipai.util.annotation.Member;


@HeadApiProtocol(cPlusNamespace = "erp::storage::ao", needInit = true,needReset=true)
public class StorageAo {

	
	@ApiProtocol(cmdid = "0xc05f1801L", desc = " 写入仓库信息 ")
	class AddStock
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;	
	        
			@Field(desc = "功能选项，扩展选填 ")
			uint32_t option;
			
			@Field(desc = "仓库信息，必填 ")
			StockPo StockInfo;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
			
			@Field(desc = "返回添加成功的SysNo ")
			uint64_t SysNo;
			
		}
	};
	
	
	@ApiProtocol(cmdid = "0xc05f1802L", desc = " 逻辑删除仓库信息 ")
	class DeleteStock
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;	
	        
			@Field(desc = "功能选项，扩展选填 ")
			uint32_t option;
			
			@Field(desc = "需删除的仓库ID，必填 ")
			Set<uint64_t> FStockSysNo;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "删除失败的错误码")
			Map<uint64_t,uint32_t> errorCode;
			
			@Field(desc = "删除失败的错误信息")
			Map<uint64_t,String> errorMsg;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
		}
	};
	
	@ApiProtocol(cmdid = "0xc05f1803L", desc = " 修改仓库信息 ")
	class UpdateStock
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;	
	        
			@Field(desc = "功能选项，扩展选填 ")
			uint32_t option;
			
			@Field(desc = "仓库信息，必填 ")
			StockPo StockInfo;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
		}
	};
	
	
	
	@ApiProtocol(cmdid = "0xc05f1804L", desc = " 根据ID获取仓库信息 ")
	class GetStockBySysNos
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;					
			
			@Field(desc = "需获取的仓库sysnos，必填 ")
			Set<uint64_t> SysnoList;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "仓库列表信息")
			Vector<StockPo> StockList;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
		}
	};
	
	@ApiProtocol(cmdid = "0xc05f1805L", desc = " 根据filter获取仓库信息 ")
	class GetStockList
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;					
			
			@Field(desc = "过滤器，必填 ")
			StockFilterPo StockFilter;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "仓库总数")
			uint32_t total;
			
			@Field(desc = "仓库列表信息")
			Vector<StockPo> StockList;
			
			@Field(desc = "返回保留字  ")
			String outReserve;	
		}
	};
	
	@ApiProtocol(cmdid = "0xc05f1806L", desc = " 维护仓库与分支机构关系 ")
	class ModifyStockBranch_Rel
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;	
	        
			@Field(desc = "功能选项，扩展选填 ")
			uint32_t option;
			
			@Field(desc = "仓库sys，必填 ")
			uint64_t StockSysNo;
			
			@Field(desc = "仓库sys，必填 ")
			Set<uint64_t> BranchSysNos;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
					
		}
	};
	
	@ApiProtocol(cmdid = "0xc05f1807L", desc = " 查询仓库与分支机构关系 ")
	class GetStockBranch_RelBySysNo
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;	
	        
			@Field(desc = "功能选项，扩展选填 ")
			uint32_t option;
			
			@Field(desc = "仓库sys，必填 ")
			uint64_t StockSysNo;	

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
			
			@Field(desc = "仓库与分支机构关系列表信息")
			Vector<StockBranch_RelPo> StockBranchList;
					
		}
	};
	
	
	@ApiProtocol(cmdid = "0xc05f1808L", desc = " 写入报损/报溢表 ")
	class AddLoseBillOrOverFlowBill
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;	
	        
			@Field(desc = "功能选项，扩展选填 ")
			uint32_t option;
			
			@Field(desc = "报损表信息，必填 ")
			LoseBillPo LoseBillInfo;
			
			@Field(desc = "报溢表信息，必填 ")
			OverFlowBillPo OverFlowBillInfo;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
			
			@Field(desc = "返回添加成功的SysNo ")
			uint64_t OverFlowBillSysNo;
			
		}
	};
	
	@ApiProtocol(cmdid = "0xc05f1809L", desc = " 逻辑删除报损/报溢表  ")
	class DeleteLoseBillOrOverFlowBill
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;	
	        
			@Field(desc = "功能选项，扩展选填 ")
			uint32_t option;
			
			@Field(desc = "需删除的报损ID，必填 ")
			Set<uint64_t> FLoseBillSysNo;
			
			@Field(desc = "需删除的报溢ID，必填 ")
			Set<uint64_t> FOverFlowBillSysNo;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "删除失败的错误码")
			Map<uint64_t,uint32_t> errorCode;
			
			@Field(desc = "删除失败的错误信息")
			Map<uint64_t,String> errorMsg;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
		}
	};
	
	@ApiProtocol(cmdid = "0xc05f1810L", desc = " 修改报损/报溢表 ")
	class UpdataLoseBillOrOverFlowBill
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;	
	        
			@Field(desc = "功能选项，扩展选填 ")
			uint32_t option;
			
			@Field(desc = "报损表信息，必填 ")
			LoseBillPo LoseBillInfo;
			
			@Field(desc = "报溢表信息，必填 ")
			OverFlowBillPo OverFlowBillInfo;


			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
		}
	};
	
	
	@ApiProtocol(cmdid = "0xc05f1811L", desc = " 根据ID获取报损/报溢表信息 ")
	class GetLoseBillOrOverFlowBillBySysNos
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;					
			
			@Field(desc = "需获取的仓库sysnos，必填 ")
			Set<uint64_t> LoseBillSysNoList;
			
			@Field(desc = "需获取的仓库sysnos，必填 ")
			Set<uint64_t> OverFlowSysNoList;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "报损列表信息")
			Vector<LoseBillPo> LoseBillList;
			
			@Field(desc = "报溢列表信息")
			Vector<OverFlowBillPo> OverFlowList;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
		}
	};
	
	@ApiProtocol(cmdid = "0xc05f1812L", desc = " 根据filter获取报损/报溢表")
	class GetLoseBillOrOverFlowBillList
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;					
			
			@Field(desc = "过滤器，必填 ")
			OverFlowBillOrLoseBillFilterPo  OverFlowBillOrLoseBillFilter;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "信息总数")
			uint32_t total;
			
			@Field(desc = "报损列表信息")
			Vector<LoseBillPo> LoseBillList;
			
			@Field(desc = "报溢列表信息")
			Vector<OverFlowBillPo> OverFlowList;
			
			@Field(desc = "返回保留字  ")
			String outReserve;	
		}
	};
	
	
	@ApiProtocol(cmdid = "0xc05f1813L", desc = " 拆装单创建 ")
	class AddDisassembleBill
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;	
	        
			@Field(desc = "功能选项，扩展选填 ")
			uint32_t option;
			
			@Field(desc = "拆装单信息，必填 ")
			DisassembleBillPo DisassembleBillInfo;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
			
			@Field(desc = "返回添加成功的SysNo ")
			uint64_t DisassembleBillSysNo;
			
		}
	};
	
	
	@ApiProtocol(cmdid = "0xc05f1814L", desc = " 拆装单删除（逻辑） ")
	class DeleteDisassembleBill
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;	
	        
			@Field(desc = "功能选项，扩展选填 ")
			uint32_t option;
			
			@Field(desc = "需删除的拆装单SysNos，必填 ")
			Set<uint64_t> DisassemblebillSysNos;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "删除失败的错误码")
			Map<uint64_t,uint32_t> errorCode;
			
			@Field(desc = "删除失败的错误信息")
			Map<uint64_t,String> errorMsg;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
		}
	};
	
	@ApiProtocol(cmdid = "0xc05f1815L", desc = " 拆装单修改 ")
	class UpdataDisassembleBill
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;	
	        
			@Field(desc = "功能选项，扩展选填 ")
			uint32_t option;
			
			@Field(desc = "拆装单信息，必填 ")
			DisassembleBillPo DisassembleBillInfo;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
		}
	};
	
	
	
	@ApiProtocol(cmdid = "0xc05f1816L", desc = " 拆装单查询（主键） ")
	class GetDisassembleBillBySysNos
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;					
			
			@Field(desc = "需获取的仓库sysnos，必填 ")
			Set<uint64_t> DisassembleBillSysnoList;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "拆装单信息")
			Vector<DisassembleBillPo> DisassembleBillList;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
		}
	};
	
	@ApiProtocol(cmdid = "0xc05f1817L", desc = " 拆装单列表（列表过滤） ")
	class GetDisassembleBillList
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;					
			
			@Field(desc = "过滤器，必填 ")
			DisassembleBillFilterPo DisassembleBillFilter;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "信息总数")
			uint32_t total;
						
			@Field(desc = "拆装单信息")
			Vector<DisassembleBillPo> DisassembleBillList;
			
			@Field(desc = "返回保留字  ")
			String outReserve;	
		}
	};
	
	@ApiProtocol(cmdid = "0xc05f1818L", desc = " 盘点单创建 ")
	class AddStockCheck
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;	
	        
			@Field(desc = "功能选项，扩展选填 ")
			uint32_t option;
			
			@Field(desc = "盘点单信息，必填 ")
			StockCheckMasterPo StockCheckMasterInfo;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
			
			@Field(desc = "返回添加成功的SysNo ")
			uint64_t StockCheckMasterSysNo;
			
		}
	};
	
	
	@ApiProtocol(cmdid = "0xc05f1819L", desc = " 盘点单删除（逻辑） ")
	class DeleteStockCheck
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;	
	        
			@Field(desc = "功能选项，扩展选填 ")
			uint32_t option;
			
			@Field(desc = "需删除的拆装单SysNos，必填 ")
			Set<uint64_t> StockCheckMasterSysNos;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "删除失败的错误码")
			Map<uint64_t,uint32_t> errorCode;
			
			@Field(desc = "删除失败的错误信息")
			Map<uint64_t,String> errorMsg;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
		}
	};
	
	@ApiProtocol(cmdid = "0xc05f1820L", desc = " 盘点单修改 ")
	class UpdataStockCheck
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;	
	        
			@Field(desc = "功能选项，扩展选填 ")
			uint32_t option;
			
			@Field(desc = "盘点单信息，必填 ")
			StockCheckMasterPo StockCheckMasterInfo;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
		}
	};
	
	
	
	@ApiProtocol(cmdid = "0xc05f1821L", desc = " 盘点单查询（主键） ")
	class GetStockCheckBySysNos
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;					
			
			@Field(desc = "需获取的仓库sysnos，必填 ")
			Set<uint64_t> StockCheckMasterSysNoList;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;

			@Field(desc = "盘点单信息")
			Vector<StockCheckMasterPo> StockCheckList;
			
			@Field(desc = "返回保留字  ")
			String outReserve;
		}
	};
	
	@ApiProtocol(cmdid = "0xc05f1822L", desc = "盘点单列表（列表过滤） ")
	class GetStockCheckList
	{
		class Req 
		{
			@Field(desc = "机器码，必填 ")
	        String machineKey;

	        @Field(desc = "调用来源，必填 ")
	        String source;

	        @Field(desc = "场景id，必填 ")
	        uint32_t sceneId;					
			
			@Field(desc = "过滤器，必填 ")
			DisassembleBillFilterPo DisassembleBillFilter;

			@Field(desc = "请求保留字 ")
			String inReserve;
		}
		class Resp 
		{
			@Field(desc = "错误信息 ")
			String errmsg;
			
			@Field(desc = "信息总数")
			uint32_t total;
						
			@Field(desc = "盘点单信息")
			Vector<StockCheckMasterPo> StockCheckList;
			
			@Field(desc = "返回保留字  ")
			String outReserve;	
		}
	};
	
		
}
